#ifndef NEOPUSHBUTTON_H
#define NEOPUSHBUTTON_H

#include "def.h"
#include <QPushButton>
#include <QToolButton>

class NeoPushButtonPrivate;
class NeoPushButton : public QPushButton
{
    Q_OBJECT
    NEO_PUBLIC_CREATE(NeoPushButton)
    NEO_PUBLIC_PROPERTY_CREATE_H(int, BorderRadius)
    NEO_PUBLIC_PROPERTY_CREATE_H(QColor, NormalBackgroundColor)
    NEO_PUBLIC_PROPERTY_CREATE_H(QColor, HoverBackgroundColor)
    NEO_PUBLIC_PROPERTY_CREATE_H(QColor, PressedBackgroundColor)
    NEO_PUBLIC_PROPERTY_CREATE_H(NeoPushButtonType::PushButtonStyle, ButtonStyle)
public:
    NeoPushButton(QWidget *parent = nullptr);
    NeoPushButton(const QString &text, QWidget *parent = nullptr);
    NeoPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr);
    ~NeoPushButton();

protected:
    void paintEvent(QPaintEvent *event) override;
};

#endif